home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 8
/
FM Towns Free Software Collection 8.iso
/
t_os
/
0rc_trn2
/
rc_trn2.c
< prev
next >
Wrap
Text File
|
1994-06-01
|
3KB
|
120 lines
/*
G.C:ラジコン カーの練習だよ
参考文献:Oh!FMTOWNS 1993/5p156 1994.2p60
1993.8.7(Sat)-11 94.2.15(Tue)
(C) by (BigCabinの)小池 増美
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <egb.h>
#include <spr.h>
#include <snd.h>
#include "spr_car.dat"
/* macro定義 */
#define TRUE 0
#define PAI 3.1415927
#define BG_COLOR 0x2abc /* BackGroundColor */
#define START_CAR_X 128 /* 車のスタート位置 */
#define START_CAR_Y 206
#define DR 0.3 /* 加加速度 */
#define DW 0.08 /* 角加速度 */
#define SPEED_MAX 5.0 /* 最高速度 */
/* 関数のプロトタイプ宣言 */
int egb_set(void);
int spr_set(void);
int pad_read(int *,int *,int *);
int title(void);
int game_main(void);
int cource_load(char *);
/* グローバル変数の宣言 */
char egb_work[1536];
/* main routine */
int main(void)
{
egb_set();
spr_set();
title();
cource_load("cource1.tif");
game_main();
return TRUE;
}
/* グラフィックス初期化 */
int egb_set(void)
{
EGB_init(egb_work,1536);
EGB_resolution(egb_work,0,10); /* page0は画面モード10 */
EGB_resolution(egb_work,1, 5); /* page1は画面モード 5 */
EGB_displayPage(egb_work,1,3); /* 1:画面1を前 3:page1・2共表示 */
/* page0の設定 */
EGB_writePage(egb_work,0);
EGB_displayStart(egb_work,2, 2, 2); /* 2:拡大 横2倍 縦2倍 */
EGB_displayStart(egb_work,3,320,240); /* 3:表示画面 */
EGB_displayStart(egb_work,0, 0, 0); /* 0:画面表示開始位置 */
EGB_displayStart(egb_work,1, 0, 0); /* 1:仮想画面中の移動つまりスクロール */
/* page1の設定 */
EGB_writePage(egb_work,1);
EGB_displayStart(egb_work,2, 2, 2); /* 2:拡大 横2倍 縦2倍 */
EGB_displayStart(egb_work,3,256,240); /* 3:表示画面 */
EGB_displayStart(egb_work,0, 32, 0); /* 0:画面表示開始位置 */
EGB_displayStart(egb_work,1, 0, 2); /* 1:仮想画面中の移動つまりスクロール */
return TRUE;
}
/* スプライトの初期化 */
int spr_set(void)
{
int i;
SPR_init();
for(i=0;i < 8;++i)
{
/* パターン設定(メインキャラクタ) */
/* パターン格納部(128~159)にデータを入れる */
SPR_define(1,128+i*4,1,1,(char*)spr_ptn[7-i]);
/* 1:32K色 128:先頭パターン番号1:横スプライト数 1:縦スプライト数 */
/* インデックス格納部(1023~1016)にアトリビュートと位置を設定 */
SPR_setAttribute(1023-i,1,1,128+i*4,0);
/* 1020:先頭スプライト番号 2:横スプライト数 2:縦スプライト数 128:パターン番号 0:色テーブル番号(32K色だから0) */
SPR_setPosition(0,1023-i,1,1,START_CAR_X,START_CAR_Y); /* 128,120:画面の中央 */
}
return TRUE;
}
/* パッドの読み取り */
int pad_read(int *sr,int *ab,int *pd)
{
int port;
SND_joy_in_2(0,&port); /* 読み取り 0:左ポート(端子) &port:ポートの状態 */
/* 上のデータを各ボタンデータに変換(0と1をも入れ換える) */
*sr=((port>>6)&0x03)^0x03; /* select・runボタン */
*ab=((port>>4)&0x03)^0x03; /* A・B ボタン */
*pd=(port&0x0f)^0x0f; /* 方向 ボタン */
return TRUE;
}
/* タイトル画面を表示する */
#include "rc_title.c"
/* game main routine */
#include "rc_main.c"
/* TIFF画像の読込 */
#include "rc_tifld.c"